char * add_file( char* dest_path, char* file_name,char* src_path);
getFileIndex();
char* cpy_file (char source_file_path[100],char dest_file_path[100]);
char* create_vfs(char vfs_label[], int size_create);
char* delete_dir(char path[100]);
char* delete_file(char path[100]);
char* createdir (char* path, char* folder);
int getDirIndex(char parentpath[100], char fname[40]);
char* export_file (char* file_path,char* output_file);
char* list_file(char* file_path,char* output_file);
char* list_dir(char *dir_name,int flag,char* outputfile);
void displayAll(node *root, FILE* fop);
void insertIntoTree_mount(char str[100], node *root,int index);
char* mount_vfs(char label[]);
char* mv_file(char src[100],char dest[100]);
char* search_file(char* prefix_files_name,char* output_file);
struct list* substring_search(char *start_filesname);
char* unmount_vfs(char label[]);
char * update_file( char* dest_path, char* src_path);

bstnode* bst_insert(bstnode *bstroot,char* str, int index);
void displayBstTree(bstnode *bstroot);
bstnode* bst_delete(bstnode *bstroot,char* str);
void free_bst(bstnode* bstroot);
int bst_search(bstnode *bstroot,char* str);

int hash(char *filename);
void hash_display();
struct list* hash_search(int index, char name_File[]);
struct list* searchStartPoint(char *name_File);
void insert_into_list(int hashvalue, char file[],char path[]);
int hash_deletion(int hashvalue, char *f,char *p);

node* createTree();
node* insertNode(char* value, int index);
void free_nary(node* root);
int insertIntoTree(char str[100], node *root,int flag);
void displayTree(node *root);
void listnodes(char str[100], node *root);
int ifexists(char str[100], node *root,char name[40]);
int nary_delete(char src[100], node *root);
node* checkpath_returnnode(char str[100], node *root);

